Defines a kinematic joint connecting two links. The joint attaches to a coordinate frame on each of the two links; the frames are identified by their index within each link. The joint is coincident with both frames when all of its joint variables are zero.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | actuated | = | .false. |
True if the joint is driven; else, false for a passive joint. |
|
| integer(kind=int32), | public | :: | child_frame | = | 1 |
The index of the coordinate frame on the child link to which the joint attaches. |
|
| integer(kind=int32), | public | :: | child_link | = | 0 |
The index of the child link. |
|
| integer(kind=int32), | public | :: | joint_type | = | REVOLUTE_JOINT |
The type of joint. This value must be one of FIXED_JOINT, REVOLUTE_JOINT, PRISMATIC_JOINT, CYLINDRICAL_JOINT, UNIVERSAL_JOINT, or SPHERICAL_JOINT. |
|
| integer(kind=int32), | public | :: | parent_frame | = | 1 |
The index of the coordinate frame on the parent link to which the joint attaches. |
|
| integer(kind=int32), | public | :: | parent_link | = | 0 |
The index of the parent link. |
Initializes a new joint object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | jtype |
The type of joint. This value must be one of FIXED_JOINT, REVOLUTE_JOINT, PRISMATIC_JOINT, CYLINDRICAL_JOINT, UNIVERSAL_JOINT, or SPHERICAL_JOINT. |
||
| integer(kind=int32), | intent(in) | :: | parent_link |
The index of the parent link. |
||
| integer(kind=int32), | intent(in) | :: | child_link |
The index of the child link. |
||
| integer(kind=int32), | intent(in), | optional | :: | parent_frame |
The index of the coordinate frame on the parent link to which the joint attaches. If not supplied, a value of one is used. |
|
| integer(kind=int32), | intent(in), | optional | :: | child_frame |
The index of the coordinate frame on the child link to which the joint attaches. If not supplied, a value of one is used. |
|
| logical, | intent(in), | optional | :: | actuated |
True if the joint is driven. If not supplied, the joint is considered passive. |
The resulting joint object.
Gets the number of constraint equations the joint imposes upon the relative motion of the two links it connects when considered in three-dimensional space.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(joint), | intent(in) | :: | this |
The joint object. |
The number of constraint equations.
Gets the number of degrees of freedom, and therefore the number of joint variables, permitted by the joint.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(joint), | intent(in) | :: | this |
The joint object. |
The number of degrees of freedom.
Gets the number of constraint equations the joint imposes upon the relative motion of the two links it connects when the mechanism is restricted to planar motion.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(joint), | intent(in) | :: | this |
The joint object. |
The number of constraint equations.
Determines if the joint is usable within a planar mechanism. Planar mechanisms admit only fixed joints, revolute joints acting about the plane normal, and prismatic joints acting within the plane.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(joint), | intent(in) | :: | this |
The joint object. |
True if the joint may be used in a planar mechanism.
Computes the transformation matrix describing the motion permitted by the joint. The transformation is expressed in, and relative to, the joint's coordinate frame.
For a planar mechanism the plane of motion is the x-y plane; a revolute joint therefore acts about the z-axis, and a prismatic joint acts along the joint frame's z-axis only when that axis lies in the plane of motion.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(joint), | intent(in) | :: | this |
The joint object. |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | q |
An array containing the joint variables. The array must contain at least as many values as the joint has degrees of freedom. |
The resulting 4-by-4 transformation matrix.